const redis = require('redis');
const db = redis.createClient(6379, '172.16.46.199', {}); //创建Redis客户端实例
class Entry {
    constructor(obj) {
        for (let key in obj) { //循环遍历传入对象中的键
            this[key] = obj[key]; //合并值
        }
    }
    save(cb) {
        const entryJSON = JSON.stringify(this); //保存的消息，转换成json字符串
        db.lpush( //保存到Redis列表
            'entries',
            entryJSON,
            (err) => {
                if (err) return cb(err);
                cb();
            }
        );
    }
    static getRange(from, to, cb) {
        db.lrange('entries', from, to, (err, items) => { //从Redis获取记录s
            if (err) return cb(err);
            let entries = [];
            items.forEach((item) => {
                entries.push(JSON.parse(item)); //解码json并存入数组
            });
            cb(null, entries);
        });
    }
    static count(cb) {
        db.llen('entries', cb);
    }
}
module.exports = Entry;